○ RAW SQL
通常我們想要在odoo中使用SQL語法時,都在model當中使用以定義方法的方式:
    def raw_sql(self):
        query = """
            SELECT
                id, name, author
	        FROM
                my_library;
        """
        self.env.cr.execute(query)
        print('self.env.cr.fetchall:', self.env.cr.fetchall())
我們有三種取值的方式self.env.cr.fetchall() self.env.cr.fetchone() self.env.cr.dictfetchall()
當報表的格式比較特殊的時候,我們就會使用他:
@api.model_cr
    def init(self):
        tools.drop_view_if_exists(self.env.cr, self._table)
        query = """
        (
            SELECT
                min(library.id) as id,
                create_uid,
                avg(input_number) AS average_input_number
            FROM
                my_library AS demo
            GROUP BY library.create_uid
        );
        """
        self.env.cr.execute(query)
※使用原生SQL時要特別注意,因為它是直接對DB做操作,並沒有ORM這層。
明天開始介紹 odoo 的 Security 。